"""
7-2 找出一个字符串中出现次数最多的一个字符
找出一个字符串中出现次数最多的一个字符。
给出一个字符串，字符串的长度不大于10^6，【超时警告！】
不区分大小写，
字符串中可能包含'A'-'Z','a'-'z',' '字符。
分别输出出现最多次数的字符（如果为字母，输出小写字母），出现的次数，
用一个空格分隔，如果有字符出现次数相同的输出较小的字符。
行末尾无多余空格和换行
"""


# 字符串太长的时候超时了
def resolution1():
    chars = input()
    count_map = {}
    # 建表
    for char in chars:
        if char.isupper():
            count_map[char.lower()] = 0
        else:
            count_map[char] = 0
    # 统计
    for char in chars:
        if char.isupper():
            count_map[char.lower()] += 1
        else:
            count_map[char] += 1
    # 找最值
    max_char = None
    max_count = -0x3f3f3f3f
    for char in count_map.keys():
        if count_map[char] > max_count:
            max_count = count_map[char]
            max_char = char

    # 输出
    print(max_char, max_count)


def resolution2():
    chars = input().lower()
    count_map = {}
    # 建表和统计
    for char in chars:
        if char in count_map:
            count_map[char] += 1
        else:
            count_map[char] = 1
    # 找最值
    max_char = max(count_map, key=count_map.get) # key参数是一个函数，
    # 它指定了在比较字典中的值时应该使用哪个键作为比较的依据。
    # 在这里，key=count_map.get表示使用count_map字典的get方法来获取值，
    # 然后根据这些值进行比较。
    max_count = count_map[max_char]

    # 输出
    print(max_char, max_count)


if __name__ == '__main__':
    # resolution1()
    resolution2()